/* File:        	IRequestAuthorization.java
* Package:			org.esi.authz.pdp.request.model
* Created:      	29-abr-2011
* Last Changed: 	0:10:49
* Author:       	Borja Urkizu borja.urquizu@tecnalia.com
*
*   
* History:
*  Revision 1.0.0.0  
* 
* Tecnalia Research and Innovation
*/
// File:         IRequestAuthorization.java
// Created:      08-feb-2011
// Last Changed: 16:11:22
// Author:       <A HREF="mailto:borja.urquizu@esi.es">[Name]</A>
//
// This code is done by Borja Urkizu for TECNLIA - ESI (Europena Software Institute)
// 
//  
// History:
//  Log: javaCodingStd.html,v $
//  Revision 1.1.1.1  08-feb-2011 16:11:22
//  initial 
//
package com.tecnalia.authz.common.request.component;

import java.util.HashMap;

import org.jboss.security.xacml.core.model.context.RequestType;
import org.jboss.security.xacml.sunxacml.ctx.RequestCtx;


// TODO: Auto-generated Javadoc
/**
 * The Interface IRequestAuthorization.
 */
public interface IRequestAuthorization {
	
	/**
	 * Request authorization.
	 */
	public void RequestAuthorization();
	
	/**
	 * Request authorization.
	 *
	 * @param envData the env data
	 */
	public void RequestAuthorization(HashMap< EnvAttrTypeImpl, String>  envData);
	
	/**
	 * Sets the subject.
	 *
	 * @param subjectData the subject data
	 * @param groupData the group data
	 */
	public void setSubject(HashMap< SubjectAttrTypeImpl, String> subjectData,
			HashMap<SubjectAttrTypeImpl, String> groupData);
	
	/**
	 * Sets the service.
	 *
	 * @param resourceData the resource data
	 */
	public void setService(HashMap< String, ResourceAttrTypeImpl> resourceData); 
	
	/**
	 * Sets the action.
	 *
	 * @param actionData the action data
	 */
	public void setAction(HashMap<ActionAttrTypeImpl, String> actionData);
	//public void setGroupData(HashMap<SubjectAttrType, String> groupData);

	/**
	 * Gets the subject.
	 *
	 * @return the subject
	 */
	public HashMap< SubjectAttrTypeImpl, String> getSubject();
	
	/**
	 * Gets the service.
	 *
	 * @return the service
	 */
	public HashMap< String, ResourceAttrTypeImpl> getService(); 
	
	/**
	 * Gets the action.
	 *
	 * @return the action
	 */
	public HashMap< ActionAttrTypeImpl, String> getAction();
	
	/**
	 * Gets the group data.
	 *
	 * @return the group data
	 */
	public HashMap<SubjectAttrTypeImpl, String> getGroupData();
	
	/**
	 * Gets the request type.
	 *
	 * @return the request type
	 */
	public RequestType getRequestType();
	
	/**
	 * Gets the request ctx.
	 *
	 * @return the request ctx
	 */
	public RequestCtx getRequestCtx();
	
	
}
